package ch.fhnw.qualiscan.core.db.pojos;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;


/**
 * This pojo holds the information about domains. It is used by hibernate to get data out of the database.
 * @author Kevin Mettenberger
 *
 */
@SuppressWarnings("serial")
public class Domain implements Serializable {
	
	private int id;
	private Set domaintexts = new HashSet();
	private Set questions = new HashSet();
	private Set confidences = new HashSet();
	private Set bestpractices = new HashSet();
	private Set domaindescription = new HashSet();
	
	public Domain() {
		
	}
	
	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}
	
	public Set getDomaintexts() {
		return domaintexts;
	}

	public void setDomaintexts(Set domaintexts) {
		this.domaintexts = domaintexts;
	}
	
	public void addDomaintexts(DomainText domaintext) {
		this.domaintexts.add(domaintext);
	}

	public Set getQuestions() {
		return questions;
	}

	public void setQuestions(Set questions) {
		this.questions = questions;
	}
	
	public void addQuestion(Question question) {
		this.questions.add(question);
	}
	
	public void removeQuestion(Question question) {
		this.questions.remove(question);
	}

	public Set getConfidences() {
		return confidences;
	}

	public void setConfidences(Set confidences) {
		this.confidences = confidences;
	}
	
	public void addConfidence(Confidence confidence) {
		this.confidences.add(confidence);
	}
	
	public void removeConfidence(Confidence confidence) {
		this.confidences.remove(confidence);
	}

	public void setBestpractices(Set bestpractices) {
		this.bestpractices = bestpractices;
	}

	public Set getBestpractices() {
		return bestpractices;
	}
	
	public void addBestpractice(BestPractice bestpractices) {
		this.bestpractices.add(bestpractices);
	}
	
	public void removeBestpractice(BestPractice bestpractice) {
		this.bestpractices.remove(bestpractice);
	}

	public Set getDomaindescription() {
		return domaindescription;
	}

	public void setDomaindescription(Set domaindescription) {
		this.domaindescription = domaindescription;
	}
	
	public void addDomaindescription(DomainDescription domaindescription) {
		this.domaindescription.add(domaindescription);
	}
	
	public void removeDomaindescription(DomainDescription domaindescription) {
		this.domaindescription.remove(domaindescription);
	}

}
